﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace HardwareLibrary.EQLibrary
{
    /// <summary>
    /// 节目区域参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_PartInfo
    {
        //窗口的起点X
        public int iX;
        //窗口的起点Y            
        public int iY;
        //窗体的宽度            
        public int iWidth;
        //窗体的高度        
        public int iHeight;
        //边框的样式       
        public int iFrameMode;
        //边框颜色    
        public int FrameColor;
    }

    /// <summary>
    /// 字体参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_FontSet
    {
        //字体的名称
        public string strFontName;
        //字体的大小
        public int iFontSize;
        //字体是否加粗    
        public bool bFontBold;
        //字体是否是斜体   
        public bool bFontItaic;
        //字体是否带下划线  
        public bool bFontUnderline;
        //字体的颜色
        public int colorFont;
        //左右对齐方式，0－ 左对齐，1－居中，2－右对齐    
        public int iAlignStyle;
        //上下对齐方式，0-顶对齐，1-上下居中，2-底对齐 
        public int iVAlignerStyle;
        //行间距   
        public int iRowSpace;
    }

    /// <summary>
    /// 动画方式参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_MoveSet
    {
        //节目变换方式
        public int iActionType;
        //节目的播放速度     
        public int iActionSpeed;
        //是否需要清除背景    
        public bool bClear;
        //在屏幕上停留的时间         
        public int iHoldTime;
        //清除显示屏的速度       
        public int iClearSpeed;
        //节目清除的变换方式        
        public int iClearActionType;
        //每帧时间
        public int iFrameTime;
    }

    /// <summary>
    /// 日期时间区参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_DateTime
    {
        //分区信息
        public User_PartInfo PartInfo;
        //背景颜色
        public int BkColor;
        //字体设置      
        public User_FontSet FontInfo;
        //显示风格 0－"3/10/2006 星期六10:20:30",1－"2006-03-10星期六10:20:30",2－"2006年3月10日 星期六10点20分30秒"
        public int iDisplayType;
        //添加显示文字
        public string chTitle;
        //年份位数0－4,1－2位   
        public bool bYearDisType;
        //单行还是多行,0－单行1－多行
        public bool bMulOrSingleLine;
        //是否显示年
        public bool bYear;
        //是否显示月       
        public bool bMouth;
        //是否显示天     
        public bool bDay;
        //是否显示星期      
        public bool bWeek;
        //是否显示小时       
        public bool bHour;
        //是否显示分钟     
        public bool bMin;
        //是否显示秒        
        public bool bSec;
    }

    /// <summary>
    /// 单行文本区参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_SingleText
    {
        //显示内容
        public string chContent;
        //分区信息    
        public User_PartInfo PartInfo;
        //背景颜色
        public int BkColor;
        //字体设置         
        public User_FontSet FontInfo;
        //动作方式设置
        public User_MoveSet MoveSet;
    }

    /// <summary>
    /// 文本区参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_Text
    {
        //显示内容
        public string chContent;
        //分区信息    
        public User_PartInfo PartInfo;
        //背景颜色
        public int BkColor;
        //字体设置       
        public User_FontSet FontInfo;
        //动作方式设置
        public User_MoveSet MoveSet;
    }

    /// <summary>
    /// 计时区参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_Timer
    {
        //分区信息
        public User_PartInfo PartInfo;
        //背景颜色
        public int BkColor;
        //字体设置   
        public User_FontSet FontInfo;
        //到达年
        public int ReachTimeYear;
        //到达月
        public int ReachTimeMonth;
        //到达日
        public int ReachTimeDay;
        //到达时
        public int ReachTimeHour;
        //到达分
        public int ReachTimeMinute;
        //到达秒
        public int ReachTimeSecond;
        //是否显示天 0－不显示 1－显示
        public bool bDay;
        //是否显示小时	
        public bool bHour;
        //是否显示分钟		
        public bool bMin;
        //是否显示秒		
        public bool bSec;
        //单行还是多行	
        public bool bMulOrSingleLine;
        //添加显示文字
        public string chTitle;
    }

    /// <summary>
    /// 温度区参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_Temperature
    {
        //分区信息
        public User_PartInfo PartInfo;
        //背景颜色
        public int BkColor;
        //字体设置        
        public User_FontSet FontInfo;
        //标题
        public string chTitle;
        //显示格式：0－度 1－C	    
        public int DisplayType;
    }

    /// <summary>
    /// 图文区参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_Bmp
    {
        //分区信息
        public User_PartInfo PartInfo;
    }

    /// <summary>
    /// RTF文件区参数
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct User_RTF
    {
        //RTF文件名
        public string strFileName;
        //分区信息
        public User_PartInfo PartInfo;
        //动作方式设置
        public User_MoveSet MoveSet;
    }
}
